Skip to content

chore: update native SDKs to versions with geofence support - #609

Closed
mrehan27 wants to merge 10 commits into
mainfrom
mbl-1785-geofence-final
Closed

chore: update native SDKs to versions with geofence support#609
mrehan27 wants to merge 10 commits into
mainfrom
mbl-1785-geofence-final

Conversation

@mrehan27

@mrehan27 mrehan27 commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Points the wrapper at the released native SDKs that ship geofence:

  • android/gradle.properties: cioSDKVersionAndroid4.20.0
  • package.json: cioNativeiOSSdkVersion= 4.7.0

Targets feature/geofence-on-device, not main. Nothing is released here.

What changed since review ✅

Native geofence is now released — Android 4.20.0 and iOS 4.7.0 — so the temporary pre-release scaffolding this PR carried is gone, exactly as the merge plan described.

Dropped (was Commit 2): the snapshot Maven repo, the feature-geofence-on-device-SNAPSHOT example pin, the customerio-ios git-branch pods / CocoaPods override, the temporary = 4.6.1 iOS pin, and the feature-branch Firebase CI line. The example app and CI now build against the released SDKs like any other change.

What's left is the single version-bump commit that was always the keeper — the two-commit / do-not-squash caveat no longer applies.

Verification

  • Android 4.20.0 on Maven Central, including the io.customer.android:geofence artifact the wrapper's compileOnly/api dependency needs.
  • iOS 4.7.0 publishes the CustomerIO/LocationGeofence umbrella subspec that the wrapper's geofence subspec depends on, so it resolves from trunk with no git pod.

Ticket

MBL-1785 — React Native: add geofencing support

PR stack

  1. chore: add geofence module base #605 — geofence module base
  2. chore: register geofence module and treat geofence as implying location #606 — register geofence module + geofence implies Location
  3. chore: add iOS allowBackgroundDelivery config for geofence #607 — iOS allowBackgroundDelivery config
  4. chore: enable geofence in the example app #608 — enable geofence in the example app
  5. 👉 This PR — native SDK version pins

🤖 Generated with Claude Code

mrehan27 and others added 5 commits June 27, 2026 01:56
Wire the optional geofence module without enabling behavior yet:
build flags (customerio_geofence_enabled gradle property, geofence
podspec subspec), the geofence opt-in config key, and the exported
CustomerIOGeofence class. Enabling geofence also pulls in Location,
which geofence depends on, and turns on the Location build flag on both
platforms so geofence-only builds get the full Location module.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mrehan27
mrehan27 requested a review from a team as a code owner June 30, 2026 21:54
@mrehan27 mrehan27 self-assigned this Jun 30, 2026
@github-actions

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Sample app builds 📱

Below you will find the list of the latest versions of the sample apps. It's recommended to always download the latest builds of the sample apps to accurately test the pull request.


  • iOS APN: 609.2.0 (29750159)
  • iOS FCM: 609.2.0 (29750159)

mrehan27 and others added 2 commits July 3, 2026 18:45
…tion (#612)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mrehan27
mrehan27 force-pushed the mbl-1785-geofence-final branch 3 times, most recently from 2cb7b96 to 7d93b96 Compare July 7, 2026 10:09
Comment thread package.json Outdated
@mrehan27
mrehan27 force-pushed the mbl-1785-geofence-final branch from 7d93b96 to be8acc3 Compare July 7, 2026 10:12

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit be8acc3. Configure here.

# cioSDKVersionAndroid=local
# TEMP: geofence is not yet released; point at the feature-branch snapshot so the
# example can be built and tested. Revert once the native SDKs ship.
cioSDKVersionAndroid=feature-geofence-on-device-SNAPSHOT

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Android snapshot property not applied

High Severity

The example app sets cioSDKVersionAndroid to the geofence snapshot, but the React Native Android module resolves the native SDK via getExtOrDefault('cioSDKVersionAndroid'), which only reads rootProject.ext.cioSDKVersionAndroid or customerio.reactnative.cioSDKVersionAndroid. The snapshot line is ignored, so Gradle keeps resolving 4.20.0 from the library defaults even though that artifact is not released yet.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit be8acc3. Configure here.

mrehan27 and others added 2 commits July 21, 2026 14:43
…n screen (#614)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
iOS 4.7.0, Android 4.20.0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mrehan27
mrehan27 force-pushed the mbl-1785-geofence-final branch from be8acc3 to 4dde188 Compare July 21, 2026 09:50
Point the example at pre-release native builds so geofence can be tested before
the native SDKs are released, and publish this PR's sample builds to the
feature-branch Firebase channel so subscribed peers can use them. Revert this
commit once the native SDKs ship.

- iOS: load the geofence-aware CocoaPods override and build against the
  customerio-ios `main` branch (now that geofence is merged there), via a single
  cio_ios_sdk_branch variable — change only that to retarget a future feature.
  Pin the native iOS SDK to 4.6.1 (main's podspec) so pods resolve until 4.7.0.
- Android: example uses the feature-branch snapshot + the central snapshot repo.
  There is no native main snapshot yet, so the Android sample build is expected
  to fail until native Android releases geofence.
- CI: distribute this PR branch's sample builds to the feature-branch group.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mrehan27
mrehan27 force-pushed the mbl-1785-geofence-final branch from 4dde188 to 5cb8c31 Compare July 25, 2026 19:59
@mrehan27 mrehan27 changed the title chore: pin geofence native SDK versions and example test wiring chore: update native SDKs to versions with geofence support Jul 30, 2026
Base automatically changed from feature/geofence-on-device to main July 30, 2026 14:00
@mrehan27

Copy link
Copy Markdown
Contributor Author

Closing this as it's no longer needed after feature branches merge

@mrehan27 mrehan27 closed this Jul 30, 2026
@mrehan27
mrehan27 deleted the mbl-1785-geofence-final branch July 30, 2026 18:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants